From 89e0f558c842bb8a2be5a816f5f3d17c9c86aeef Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Tue, 15 Aug 2006 16:31:14 +0100 Subject: [PATCH] [XEN] Add tracing to slow path in setting new guest %cr3 value. Also, allow x86/64 user cr3 value to be reset to zero. Signed-off-by: Gerd Hoffmann --- xen/arch/x86/mm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 9664a2cda0..b5b778d83f 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1744,6 +1744,7 @@ int new_guest_cr3(unsigned long mfn) if ( unlikely(!okay) ) { /* Switch to idle pagetable: this VCPU has no active p.t. now. */ + MEM_LOG("New baseptr %lx: slow path via idle pagetables", mfn); old_base_mfn = pagetable_get_pfn(v->arch.guest_table); v->arch.guest_table = pagetable_null(); update_pagetables(v); @@ -2025,8 +2026,10 @@ int do_mmuext_op( #ifdef __x86_64__ case MMUEXT_NEW_USER_BASEPTR: - okay = get_page_and_type_from_pagenr( - mfn, PGT_root_page_table, d); + okay = 1; + if (likely(mfn != 0)) + okay = get_page_and_type_from_pagenr( + mfn, PGT_root_page_table, d); if ( unlikely(!okay) ) { MEM_LOG("Error while installing new mfn %lx", mfn); -- 2.30.2